#!/usr/bin/env python3
"""
验证时区更改脚本
测试数据库中的时间是否使用了正确的时区
"""
import sys
import os
from datetime import datetime

# 添加项目根目录到路径
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from services.web.app import create_app
from services.shared import db, SystemLog
from services.shared.timezone_utils import get_current_time, format_datetime
from services.shared.log_utils import log_system_event

def test_timezone_integration():
    """测试时区集成"""
    app = create_app()
    
    with app.app_context():
        try:
            # 测试当前时间
            current_time = get_current_time()
            print(f"🕐 当前系统时间: {current_time.strftime('%Y-%m-%d %H:%M:%S %Z')}")
            
            # 创建一个测试日志来验证数据库时间
            print("\n📝 创建测试日志...")
            log_system_event('INFO', 'timezone_test', '时区测试消息')
            
            # 查询最新的日志记录
            latest_log = SystemLog.query.order_by(SystemLog.created_at.desc()).first()
            if latest_log:
                print(f"📅 数据库记录时间: {latest_log.created_at}")
                print(f"📍 格式化时间: {format_datetime(latest_log.created_at)}")
                
                # 检查时区是否正确
                now_str = datetime.now().strftime('%Y-%m-%d %H:%M')
                db_str = latest_log.created_at.strftime('%Y-%m-%d %H:%M')
                
                if now_str == db_str:
                    print("✅ 时区配置正确！数据库时间与本地时间一致")
                else:
                    print(f"⚠️  时区可能有问题：本地时间 {now_str}，数据库时间 {db_str}")
            else:
                print("❌ 未找到日志记录")
                
            # 测试调度器时区
            print(f"\n⏰ 调度器时区配置: Asia/Shanghai")
            
            print("\n🎉 时区验证完成！")
            
        except Exception as e:
            print(f"❌ 验证失败: {e}")
            import traceback
            traceback.print_exc()

if __name__ == '__main__':
    test_timezone_integration()